const compressing = require('compressing');
const fs = require("fs");
const path = require("path");
const os = require("os");
const { addAbortSignal } = require("stream");
const { start } = require("repl");

let allFiles = fs.readdirSync(__dirname);

function my_zip() {
    const compressing = require('compressing');

    compressing.zip.compressDir('nodejs-compressing-demo', 'nodejs-compressing-demo.zip')
        .then(() => {
            console.log('success');
        })
        .catch(err => {
            console.error(err);
        });

    // 解压缩
    compressing.zip.uncompress('nodejs-compressing-demo.zip', 'nodejs-compressing-demo3')
        .then(() => {
            console.log('success');
        })
        .catch(err => {
            console.error(err);
        });
}
// 验证结尾后缀是否为真。str文件的名字。appoint文件后缀的名字
function my_validationEnd(str, appoint) {
    // 不区分大小写全部转换成小写。
    str = str.toLowerCase();
    let tempArr = str.split(".");
    let endStr = tempArr[tempArr.length - 1];
    if (appoint === endStr) {
        return true;
    }
    return false;
}
// 过滤数组的方法，返回我想要的文件类型的数组。第一个参数文件数组。第二个参数后缀名，字符串。
function type_arr(arr, typeStr) {
    let newArr = [];
    for (let i in arr) {
        if (my_validationEnd(arr[i], typeStr)) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

function my_compress_zip(){
    let zipArr=type_arr(allFiles,'zip')
    zipArr.forEach(item=>{
        compressing.zip.uncompress(item,'./')
        .then(() => {
            console.log('success');
        })
        .catch(err => {
            console.error(err);
        });
    })
    console.log('解压完成！');
}
my_compress_zip()